prices.day
Overview
Theprices.day
table provides daily token price data across all supported blockchains. It contains volume-weighted average prices for each day, ensuring a continuous time series for price analysis.
Table Schema
Column | Type | Description |
---|---|---|
blockchain | varchar | Blockchain identifier (e.g., ‘ethereum’, ‘arbitrum’) |
contract_address | varbinary | Token contract address (fixed address for native tokens) |
symbol | varchar | Token symbol (e.g., ‘ETH’, ‘USDC’) |
timestamp | timestamp | Date timestamp (00:00 UTC of each day) |
price | double | Token price in USD (volume-weighted average) |
decimals | int | Token decimals |
volume | double | Trading volume in USD (from price source) |
source | varchar | Data source (‘coinpaprika’ or ‘dex.trades’) |
Implementation Details
The daily prices are built through these steps:- Collect sparse price observations from different sources
- Group by day, calculating volume-weighted average price per day
- Fill missing days with the previous day’s price (forward filling)
- Set a 30-day expiration for forward filling to avoid stale data
Usage
This table is ideal for analyzing daily price trends and performing day-over-day comparisons. It provides a good balance between data granularity and query performance for longer-term analyses. Note: The underlying data sources are aligned to 5-minute intervals for consistency and improved data quality.Latency and Update Frequency
Theprices.day
table is updated daily at 00:00 UTC, providing the closing price for the previous day. Data is typically available within 30 minutes of the daily close.
Usage Examples
Get ETH price history for the last month:
Calculate monthly average price for multiple tokens:
Get native token price using dune.blockchains:
Data Quality Notes
- Prices older than 30 days will not be forward-filled to avoid using stale data
- Native tokens (like ETH, BNB) are assigned fixed addresses for consistency
- For native tokens, use
dune.blockchains
table to get the standardized address for each blockchain - The same token may have different prices on different blockchains due to bridging inefficiencies
- Always use
contract_address
andblockchain
for precise token identification, never usesymbol
for joins or filters - Prices are calculated using volume-weighted averages for more accurate representation
- Quality Filtering: The system includes filtering mechanisms to reduce the impact of anomalous trades
- Data Limitations: While filtering helps improve data quality, users should always validate prices for critical applications